﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace Mapping.Sistema
{
    public class MappingTipoMateriaPrima
    {
        public static List<Entidades.Sistema.TipoMateriaPrima> ConsultartipoMateriaPrima()
        {
            SqlCommand cmdTipoMatprima = new SqlCommand();
            cmdTipoMatprima.CommandText = "sp_ConsultarTipoMatprima";
            cmdTipoMatprima.CommandType = System.Data.CommandType.StoredProcedure;
            cmdTipoMatprima.Connection = Servicios.Conexion.ObtenerInstancia().RetornarConexion();
            SqlDataReader drtipoMatprima = cmdTipoMatprima.ExecuteReader();
            List<Entidades.Sistema.TipoMateriaPrima> Col_tipoMateriaPrima = new List<Entidades.Sistema.TipoMateriaPrima>();
            while (drtipoMatprima.Read())
            {
                Entidades.Sistema.TipoMateriaPrima oTipoMateriaPrima = new Entidades.Sistema.TipoMateriaPrima();
                oTipoMateriaPrima.cod_tipo_materiaprima = Convert.ToInt16(drtipoMatprima["cod_tipo_materiaprima"]);
                oTipoMateriaPrima.nombre = (drtipoMatprima["nombre"]).ToString();
                oTipoMateriaPrima.descripcion = (drtipoMatprima["descripcion"]).ToString();

                Col_tipoMateriaPrima.Add(oTipoMateriaPrima);

            }
            return Col_tipoMateriaPrima;
        }

        public static bool AgregarTipoMateriaPrima(Entidades.Sistema.TipoMateriaPrima oTipoMateriaprima)
        {
            int Maximo = 0;
            SqlCommand cmdMaxTMP = new SqlCommand();
            cmdMaxTMP.CommandText = "sp_ObtenerMaxTipoMateriaPrima";
            cmdMaxTMP.CommandType = System.Data.CommandType.StoredProcedure;
            cmdMaxTMP.Connection = Servicios.Conexion.ObtenerInstancia().RetornarConexion();
            SqlDataReader drOrdenMaximo = cmdMaxTMP.ExecuteReader();

            while (drOrdenMaximo.Read())
            {
                Maximo = Convert.ToInt32(drOrdenMaximo[0]);
            }

             Maximo = Maximo + 1;
             oTipoMateriaprima.cod_tipo_materiaprima = Maximo;

            SqlCommand cmdTipoMatprima = new SqlCommand();
            cmdTipoMatprima.CommandText = "sp_AgregarTipoMatprima";
            cmdTipoMatprima.CommandType = System.Data.CommandType.StoredProcedure;
            cmdTipoMatprima.Connection = Servicios.Conexion.ObtenerInstancia().RetornarConexion();
            cmdTipoMatprima.Parameters.Add("@cod_tipo_materiaprima", System.Data.SqlDbType.Int).Value = Convert.ToInt32(oTipoMateriaprima.cod_tipo_materiaprima);
            cmdTipoMatprima.Parameters.Add("@nombre", System.Data.SqlDbType.NVarChar, 50).Value = oTipoMateriaprima.nombre;
            cmdTipoMatprima.Parameters.Add("@descripcion", System.Data.SqlDbType.NVarChar, 50).Value = oTipoMateriaprima.descripcion;
            cmdTipoMatprima.ExecuteNonQuery();
            return true;
        }

        public static bool EliminarTipoMateriaPrima(Entidades.Sistema.TipoMateriaPrima oTipoMateriaprima)
        {
            SqlCommand cmdTipoMatprima = new SqlCommand();
            cmdTipoMatprima.CommandText = "sp_EliminarTipoMatprima";
            cmdTipoMatprima.CommandType = System.Data.CommandType.StoredProcedure;
            cmdTipoMatprima.Connection = Servicios.Conexion.ObtenerInstancia().RetornarConexion();
            cmdTipoMatprima.Parameters.Add("@cod_tipo_materiaprima", System.Data.SqlDbType.Int).Value = oTipoMateriaprima.cod_tipo_materiaprima;
            cmdTipoMatprima.ExecuteNonQuery();
            return true;
        }


        public static bool ModificarTipoMateriaPrima(Entidades.Sistema.TipoMateriaPrima oTipoMateriaprima)
        {
            SqlCommand cmdTipoMatprima = new SqlCommand();
            cmdTipoMatprima.CommandText = "sp_ModificarTipoMatprima";
            cmdTipoMatprima.CommandType = System.Data.CommandType.StoredProcedure;
            cmdTipoMatprima.Connection = Servicios.Conexion.ObtenerInstancia().RetornarConexion();
            cmdTipoMatprima.Parameters.Add("@cod_tipo_materiaprima", System.Data.SqlDbType.Int).Value = oTipoMateriaprima.cod_tipo_materiaprima;
            cmdTipoMatprima.Parameters.Add("@nombre", System.Data.SqlDbType.NVarChar, 50).Value = oTipoMateriaprima.nombre;
            cmdTipoMatprima.Parameters.Add("@descripcion", System.Data.SqlDbType.NVarChar, 50).Value = oTipoMateriaprima.descripcion;
            cmdTipoMatprima.ExecuteNonQuery();
            return true;
        }
    }
}


